In prior art data processing systems there are two principle processing methods or architectures used in evaluating data. These are direct evaluation schemes and indirect evaluation schemes.
In the direct evaluation schemes of the prior art, the interpreter pointer, which determines the order of evaluation of the objects, always points directly at the object. That is, it never points at a pointer to the object, that is, an object pointer. When the object is evaluated, code or data associated with the object is executed and the interpreter pointer is updated to address the next object in the sequence of objects.
In the indirect evaluation schemes of the prior art, the interpreter pointer always points at a pointer to the object. When the object is evaluated, the code or data associated with the object is executed and the interpreter pointer is updated to address the next pointer.
In the direct evaluation scheme in prior art devices, the simple inclusion of a pointer among the data objects would lead to the misinterpretation of the object and consequential undesired results.
Similarly, in the indirect case in prior art devices, the simple inclusion of an object among the pointers would also lead to undesirable effects.
In prior art data processing systems, there have been several attempts at ameliorating the above described defiency. In particular, in the direct evaluation scheme, occasionally there has been introduced the concept of an object whose body is interpreted as a pointer. This object, however, cannot itself be indirectly evaluated.
In the indirect evaluation schemes, in the prior art, the notion of an indirect object with a body embedded in the execution sequence is fairly standard. This has the severe shortcoming, however, that its location, that is, directly in the evaluation sequence, is fixed by its structure and such an object can only be evaluated in this peculiar indirect-with-an-embedded-body manner.